home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].zip / Micro on the Apple Volume 1 (1981)(Micro Ink)[no boot].do / FUNCTION GRAPH.bas < prev    next >
BASIC Source File  |  1996-12-24  |  4KB  |  92 lines

  1. 10  REM  ************************
  2. 11  REM  *                      *
  3. 12  REM  *  GRAPHING RATIONAL   *
  4. 14  REM  *      FUNCTIONS       *
  5. 16  REM  *     RON CARLSON      *
  6. 18  REM  *                      *
  7. 20  REM  *    FUNCTION GRAPH    *
  8. 21  REM  *                      *
  9. 22  REM  *  COPYRIGHT (C) 1981  *
  10. 23  REM  *    MICRO INK, INC.   *
  11. 24  REM  * CHELMSFORD, MA 01824 *
  12. 25  REM  *  ALL RIGHTS RESERVED *
  13. 26  REM  *                      *
  14. 27  REM  ************************
  15. 50 :
  16. 60  DEF  FN NUM(X) = X
  17. 70  DEF  FN DEN(X) = (X +2)
  18. 75 :
  19. 80  REM     DEF FN DEN(X)=1>> IF YOU HAVE A NON-RATIONAL GRAPH
  20. 85 :
  21. 90  HOME : INPUT "THERE ARE 280 HORIZANTAL DOTS. HOW MANY DOTS/UNIT DO YOU WANT?";S
  22. 100  VTAB 21: PRINT "INDICATE THE INTENDED LOCATION OF THE ORIGIN BY MOVING THE CURSOR WITH THE  L  R  U  D KEYS. F=FINISHED"
  23. 110  REM  THIS ALLOWS THE USER TO SELECT WHICH AREA OF THE GRAPH TO VIEW
  24. 120  GOSUB 620: REM  TO POSITION THE ORIGIN
  25. 130  REM   S WILL BE THE SCALE
  26. 140  REM   DETAIL INCREASES AS S INCREASES
  27. 150  VTAB 21: PRINT "AFTER THE BOTTOM HALF OF THE GRAPH IS FINISHED, HIT ANY KEY"
  28. 160  PRINT "THERE IS A HASH MARK (/) ON THE AXIS FOR EACH UNIT"
  29. 170  HGR : HCOLOR= 7
  30. 180  REM  AXIS, WITH THE REAL AXIS AT (A,B)
  31. 190  HPLOT O,B TO 279,B: HPLOT A,0 TO A,191
  32. 200  REM  HASH MARKS EVERY UNIT ON THE AXIS
  33. 210  FOR H = A TO 279  STEP S: HPLOT H,B -2 TO H,B +2: NEXT 
  34. 220  FOR H = A TO 0  STEP  -S: HPLOT H,B -2 TO H,B +2: NEXT 
  35. 230  FOR V = B TO 191  STEP S: HPLOT A -2,V TO A +2,V: NEXT 
  36. 240  FOR V = B TO 0  STEP  -S: HPLOT A -2,V TO A +2,V: NEXT 
  37. 250  REM  ACTUAL GRAPHING
  38. 260  FOR H = 0 TO 279
  39. 270  REM  TRANSFER THE HGR COOR TO THE REAL VALUE
  40. 280 X = (H -A)/S:D =  FN DEN(X)
  41. 290  REM  DRAW THE VERTICAL ASYMPTOTES IF NECESSARY
  42. 300  IF D = 0  THEN  HCOLOR= 3: HPLOT H,0 TO H,191: HCOLOR= 7: GOTO 350
  43. 310 Y =  FN NUM(X)/D:V = B -Y *S
  44. 320  REM  TRANSFORM THE REAL Y VALUE TO HGR AND SEE IF IT STILL ON THE SCREEN
  45. 330  IF V >191  OR V <0  THEN 350
  46. 340  HPLOT H,V
  47. 350  NEXT H
  48. 370  REM  THIS POKE WILL DISPLAY THE BOTTOM QUARTER OF THE GRAPH
  49. 380  POKE  -16302,0: GET A$
  50. 390  TEXT : HOME 
  51. 400  INPUT "DO YOU WANT TO SHIFT THE ORIGIN AND CHANGE SCALE?";A$
  52. 410  IF A$ = "Y"  OR A$ = "YES"  THEN 90
  53. 420  GOTO 830
  54. 440  HOME : PRINT " DIRECTIONS FOR RATIONAL FUNCTIONS"
  55. 450  PRINT " YOU MUST DEFINE YOUR FUNCTION IN TERMS OF NUMERATOR AND DENOMINATOR"
  56. 460  PRINT " FOR EXAMPLE IF YOU WISH TO GRAPH THE FOLLOWING:"
  57. 470  PRINT "       (X-1)(X+2)"
  58. 480  PRINT "  Y =  ----------"
  59. 490  PRINT "         X(X-7)"
  60. 500  PRINT : PRINT " YOU WOULD TYPE THE FOLLOWING"
  61. 510  PRINT "60 DEF FNNUM(X)=(X-1)*(X+2)"
  62. 520  PRINT "70 DEF FNDEN(X)=X*(X-7)
  63. 530  PRINT "RUN"
  64. 540  PRINT : FLASH : PRINT "REMEMBER :"
  65. 550  PRINT "60 DEF FNNUM(X)=";: NORMAL : PRINT "LEGAL BASIC EXPRESSION"
  66. 560  FLASH : PRINT "70 DEF FNDEN(X)=";: NORMAL : PRINT "LEGAL BASIC EXPRESSION"
  67. 570  PRINT "RUN"
  68. 580  GOTO 830
  69. 600  REM  POSITIONING THE ORIGIN OF THE SCREEN (40,40)
  70. 610  REM  USING   L  R  U  D  AND  F
  71. 620  GR : COLOR= 3: PLOT 20,20:A = 20:B = 20
  72. 630  GET A$
  73. 640 A1 = A:B1 = B
  74. 650  IF A$ = "U"  THEN B = B -1: GOTO 710
  75. 660  IF A$ = "D"  THEN B = B +1: GOTO 710
  76. 670  IF A$ = "L"  THEN A = A -1: GOTO 710
  77. 680  IF A$ = "R"  THEN A = A +1: GOTO 710
  78. 690  IF A$ = "F"  THEN 800
  79. 700  REM  KEEP ON THE LO RES SCREEN
  80. 710  IF B <1  THEN B = 1
  81. 720  IF B >39  THEN B = 39
  82. 730  IF A <1  THEN A = 1
  83. 740  IF A >39  THEN A = 39
  84. 750  REM  BLANK OLD POSITION
  85. 760  COLOR= 0: PLOT A1,B1: COLOR= 3
  86. 770  REM  PLOT NEW POSITION
  87. 780  PLOT A,B
  88. 790  GOTO 630
  89. 800 A = 7 *A:B = B *192/40
  90. 810  REM  CHANGE SCALE TO REFLECT HGR (280 BY 192)
  91. 820  TEXT : HOME : RETURN 
  92. 830  END